package com.tanjun.mallservice.apiservice.response.plu;

import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.tanjun.common.enums.ActStatusEnum;
import com.tanjun.common.utils.PathSerializer;
import com.tanjun.mallservice.apiservice.enums.plu.PluTypeEnum;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;

/**
 * 商品信息
 */
@Data
public class MallPluDto implements Serializable {
    private Long pluId;

    /**
     * 商品编码
     */
    private String pluCode;

    /**
     * 商品名称
     */
    private String pluName;

    /**
     * 规格层级
     */
    private Integer skuLevel;

    /**
     * 规格1名称
     */
    private String sku1Name;

    /**
     * 规格1存在的值
     */
    private List<String> sku1ValueList;

    /**
     * 规格2名称
     */
    private String sku2Name;

    /**
     * 规格2存在的值
     */
    private List<String> sku2ValueList;

    /**
     * 规格3名称
     */
    private String sku3Name;

    /**
     * 规格3值
     */
    private List<String> sku3ValueList;

    /**
     * 商品备注
     */
    private String pluRmk;

    /**
     * 商品类型
     */
    private PluTypeEnum pluType;

    /**
     * 品类id
     */
    private Long cateId;

    /**
     * 全部路径
     */
    private String cateFullId;

    /**
     * 是否上下架
     */
    private boolean shelfTag;

    /**
     * 日常价格
     */
    private BigDecimal price;

    /**
     * 吊牌价
     */
    private BigDecimal tagPrice;

    /**
     * 销售量
     */
    private Integer salesNum;

    /**
     * 库存量
     */
    private Integer storeNum;

    /**
     * 预览量
     */
    private Integer seeNum;

    /**
     * 商品状态
     */
    private ActStatusEnum pluStatus;

    /**
     * 商户id
     */
    private Long venId;

    /**
     * 是否可以快递
     */
    private Boolean expressTag;

    /**
     * 是否可以自提
     */
    private Boolean selfTag;

    /**
     * 是否免运费
     */
    private Boolean freeExpressTag;

    /**
     * 顺序号
     */
    private Integer sno;

    /**
     * 创建人
     */
    private String creator;

    /**
     * 创建时间
     */
    private LocalDateTime createTime;

    /**
     * 更新人
     */
    private String updater;

    /**
     * 修改时间
     */
    private LocalDateTime updateTime;
    /**
     * 商品缩略图
     */
    @JsonSerialize(using = PathSerializer.class)
    private String pluIconImg;
}